package com.tzy.note.base.thread.lambda;

/**
 * Lambda表达式简写
 * 前提是接口为函数式接口
 * Lambda表达式只能有一行代码的情况下才能简化成为一行，如果有多行，那么就用代码块包裹。
 * 多个参数也可以去掉参数类型，要去掉就都去掉,必须加上括号,
 */
public class TestLambda2 {
    public static void main(String[] args) {
        //简名类部类
        ILove love = new ILove(){
            @Override
            public void love(int a) {
                System.out.println("I love you --> " + a);
            }
        };
        love.love(1);
        //Lambda表达式
        love = (int a) -> {
            System.out.println("I love you --> " + a);
        };
        love.love(2);
        //简化一：参数类型
        love = (a) -> {
            System.out.println("I love you --> " + a);
        };
        love.love(3);

        //简化二：简化括号
        love = a -> {
            System.out.println("I love you --> " + a);
        };
        love.love(4);

        //简化三：简化大括号
        love = a -> System.out.println("I love you --> " + a);
        love.love(5);
    }
}

interface ILove{
    void love(int a);
}
